package com.example.xmhds_1.service;

import com.example.xmhds_1.dto.UserChatDTO;
import com.example.xmhds_1.dto.GroupChatDTO;
import com.example.xmhds_1.dto.UserinfoChatDTO;
import com.example.xmhds_1.entity.ChatMessage;
import java.util.List;

/**
 * 聊天服务接口
 */
public interface ChatService {

    /**
     * 获取用户的所有聊天列表
     * 包含好友信息和最新的聊天记录
     *
     * @param userId 用户ID
     * @return 聊天列表
     */
    List<UserChatDTO> getUserChatList(String userId);

    /**
     * 获取两个用户之间的完整聊天记录
     *
     * @param user0 用户0
     * @param user1 用户1
     * @return 聊天记录
     */
    ChatMessage getChatHistory(String user0, String user1);

    /**
     * 保存新的聊天消息
     *
     * @param user0 发送者
     * @param user1 接收者
     * @param message 消息内容
     * @return 是否保存成功
     */
    boolean saveMessage(String user0, String user1, String message);

    /**
     * 获取用户的群聊列表
     *
     * @param userId 用户ID
     * @return 群聊列表
     */
    List<GroupChatDTO> getGroupChatList(String userId);
    /**
     * 根据用户的账号和好友的账号查询对应的聊天记录
     */
    List<UserinfoChatDTO> getChatHistoryByUser(String user0, String user1);
    /**
     * 根据用户的账号和好友的账号修改对应的聊天记录,也就是说将对应的聊天记录变成已读
     */
    void updateChatHistoryByUser(String user0, String user1);
    /**
     * 根据用户的账号和好友的账号查询对应的聊天记录
     */
    ChatMessage getChatHistoryByUser_ChatMessage(String user0, String user1);
    /**
     * 根据用户账号和好友账号,发送信息
     */
    boolean setMessages(String user0, String user1, String message);
}
